package OjPracticeWithMyselfNote;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class PracticeOfOjQuestion {
}
class solutionDoublePoint {//把不等于val的元素都移动到nums数组的前面，并且返回k表示前面多少个元素不等于val
    public int removeElement(int[] nums,int val) {
        int k = 0 ;
        for(int i = 0; i<nums.length;i++) {
            if(nums[i]!=val) {
                nums[k]=nums[i];
                k++;
            }
        }
        return k ;
    }
}
class Solution1 {
    public int removeDuplicates(int[] nums) {
        if(nums.length == 0){
            return 0;
        }
        int i = 0;
        for(int j = 1; j < nums.length; j++) {
            if(nums[j] != nums[i]) {
                i++;
                nums[i] = nums[j];
            }
        }
        return i+1;
    }
}
class Solution2 {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        Arrays.copyOf(nums1,m+n);
        for(int i =0;i<nums2.length;i++) {
            nums1[m+i]=nums2[i];
        }
        Arrays.sort(nums1);
    }
}
class Solution3 {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> res = new ArrayList<>();
        List<Integer> row = new ArrayList<>();
        row.add(1);
        res.add(row);
        for (int i = 1; i < numRows; i++) {
            List<Integer> curRow = new ArrayList<>();
            curRow.add(1);
            List<Integer> preRow = res.get(i-1);
            for(int j=1;j<i;j++){
                int k = preRow.get(j)+preRow.get(j-1);
                curRow.add(k);
            }
            curRow.add(1);
            res.add(curRow);
        }
        return res;
    }
}
